package com.practice.springboot_01_zwj.mapper;

import com.practice.springboot_01_zwj.entity.BatchSubTask;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface BatchSubTaskMapper {
    // 根据子任务ID删除所有批量子任务
    int deleteBySubId(Integer subId);

    // 批量插入
    int insertBatch(@Param("list") List<BatchSubTask> tasks);

    // 根据子任务ID查询批量子任务
    List<BatchSubTask> selectBySubId(Integer subId);
    List<BatchSubTask> selectBySubIds(@Param("subIds") List<Integer> subIds);
    // 新增带batchExecutor过滤条件的方法
    List<BatchSubTask> selectBySubIdsAndCondition(
            @Param("subIds") List<Integer> subIds,
            @Param("batchExecutor") String batchExecutor
    );
    int deleteBySubIdAndExecutor(@Param("subId") Integer subId, @Param("batchExecutor") String batchExecutor);
    // 在BatchSubTaskMapper中添加新方法
    List<BatchSubTask> selectBySubIdAndUserAuthority(@Param("subId") Integer subId, @Param("currentUser") String currentUser);
    int deleteByIds(@Param("ids") List<Integer> ids);
    // 在BatchSubTaskMapper中添加方法
    List<Integer> selectIdsBySubIdAndExecutor(@Param("subId") Integer subId, @Param("batchExecutor") String batchExecutor);
    int updateById(BatchSubTask task);
    BatchSubTask selectById(Integer id);

    // 在BatchSubTaskMapper接口中添加

    int deleteByIdAndExecutor(@Param("id") Integer id, @Param("batchExecutor") String batchExecutor);

    int insertWithId(BatchSubTask task);


}